#pragma once
#include "SDL.h"

#include <windows.h>	
#include <GL/gl.h>
#include <GL/glu.h>

#include "GScene.h"


class CGEngine
{
public:
	CGEngine(void);
	virtual ~CGEngine(void);
	
	virtual void Init();
	virtual void Deinit();

	//set new scene for rendering
	virtual void SetScene(CGScene* scene);

	//keyboard events
	virtual void OnKeyDown(SDL_KeyboardEvent kevent);
	virtual void OnKeyUp(SDL_KeyboardEvent kevent);

	//mouse events
	virtual void OnLMBDown(SDL_MouseButtonEvent mevent);
	virtual void OnLMBUp(SDL_MouseButtonEvent mevent);

	//event that tells engine to update scene
	// elapsed - how many ticks occurred after last scene update
	virtual void OnTick(int elapsed);

	//Nothing to update - time for screen output
	virtual void OnIdle();
protected:
	CGScene* m_scene;
};
